from rest_framework import serializers
from course import models


class Cate(serializers.ModelSerializer):
    class Meta:
        model = models.Category
        fields = ["id", "name"]  # 序列化所有字段


class CategorySer(serializers.ModelSerializer):
    # 方法一对于两层的分类用嵌套足够了
    # children=Cate(many=True)
    # 方法二
    # 列表序列化的时候传递几个参数  （结果集,many=True）
    children = serializers.SerializerMethodField()  #

    def get_children(self, obj):
        # 递归实现所有的分类 都是以children的形式返回
        if obj.children.all():
            # 如果有孩子返回所有孩子的序列化信息  如果没有返回的是空数据
            return CategorySer(obj.children.all(), many=True).data
        else:
            return []

    class Meta:
        model = models.Category
        fields = "__all__"


class CourseSer(serializers.ModelSerializer):
    class Meta:
        model = models.Course
        fields = "__all__"
